Web sites providing customized Internet based services, such as social networking websites (e.g., Windows Live Spaces, Facebook, and MySpace) and user specific home pages (e.g., the MSN.com homepage, AOL home, and Media NET), often aggregate content items from many sources, or content providers, and provide the aggregated content to a user on a network as a single web page. Each time the user (i.e., a client on the network) initially connects to, refreshes, or otherwise requests a web page, a server performs a multitude of resource intensive operations to retrieve the content for the page. For example, the server may have to make several requests to other servers (or server clusters) to gather content items to be included in the web page.
Many web site servers and the like employ the ASP.NET-based Web Application Architecture for providing customized pages to clients or users. A typical server that provides a customized service based on ASP.NET includes a parser, a web request object, and an aggregator. The parser breaks a web page request from a client into a plurality of requests for content items for the web page. The parser passes each content item request to the web request object originating in the server, (or multiple instances of the web request object) and the web request object forwards the request to a remotely-located content provider of the content item. In response, this content provider sends a web response containing the requested content item back to the server. The server receives the web response object and provides the content item to the aggregator. The aggregator receives the plurality of content items represented by the plurality of requests for content items produced by the parser, and assembles the received content items into the web page requested by the client. The server provides the assembled web page to the client as the requested web page.
Disadvantageously, these recurring multiple content item requests are resource intensive within the server such that if a significant number of users simultaneously request a web page, the server may slow down due to the number of active threads used to process the requests for content items sent to content providers. Additionally, the server waits for a response from each of the content providers with respect to each of the content item requests for each web page before rendering the web page and providing it to the client requesting the web page. The multitude of requests to content providers generated by the server, and the responses from the content providers also cause high network traffic, consuming large amounts of bandwidth, and potentially interfering with other network applications by causing delays for time sensitive traffic.